SAM3U-EK Development Board

The SAM3U-EK is a development board for the SAM3U ARMcortex architecture. It was utilized in this project due to the large amount of I/O avaiable on the board, providing the capacity to read numerous sensors and control numerous motor outputs. Additionally, the board has extensive internal and external memeory, with large blocks of RAM, and ROM of various kinds (EEPROM, Flash, externally accessed USB/SD cards, etc). The populare nature of the architecture also provided the advantage of significant library support, providing the capacity to quickly get hardware perpherials operational, allowing development to focus on the logic of the system, rather then spend time indexing hardware addressed.

Development of the system took place in ANSI C. While previous protoypes had firmware written in assembly, the trigonogmetic functions required in the coordinate transform that allowed position to be related to hour angle would have been time-intensive to implement in assembly, necessitating a switch to a more sophisticated language. As the system came with numerous C libraries, it was chosen out of ease-of-access and general familiarity.

The current firmware functional on the SAM3U-EK is capable of successfully reading and tokenizing the IMU UART output, computing the necessary angular rotations required, and generating the motor control sequence that would result in such a movement. Currently, the system is able to compensate for rotational displacements, however, as the GPS has not yet been implemented, it cannot compensate for linear displacements. However, as the UART code was written with GIPO in mind, and the GPS that was specced-0ut is a UART device, incorporating it into the design should not require extensive amounts of development time or large amounts of new hardware interface code

Logic Flow Diagram (Note : HSC12 = SAM3U-EK)

Logic Flow